import { ElMessage } from 'element-plus'

export class AppError extends Error {
  constructor(
    message: string,
    public code: string = 'UNKNOWN_ERROR',
    public status: number = 500
  ) {
    super(message)
    this.name = 'AppError'
  }
}

export function handleError(error: any) {
  console.error('Error:', error)
  
  if (error instanceof AppError) {
    ElMessage.error(error.message)
    return
  }
  
  if (error.response) {
    const status = error.response.status
    const message = error.response.data?.message || '请求失败'
    
    switch (status) {
      case 400:
        ElMessage.error('请求参数错误')
        break
      case 401:
        ElMessage.error('未授权，请登录')
        break
      case 403:
        ElMessage.error('无权限访问')
        break
      case 404:
        ElMessage.error('请求的资源不存在')
        break
      case 500:
        ElMessage.error('服务器错误')
        break
      default:
        ElMessage.error(message)
    }
    return
  }
  
  if (error.request) {
    ElMessage.error('网络请求失败，请检查网络连接')
    return
  }
  
  ElMessage.error('发生未知错误')
} 